home *** CD-ROM | disk | FTP | other *** search
/ Belgian Amiga Club - ADF Collection / BS1 part 05.zip / BS1 part 5 / SASC_6.0_Disk_4.adf / Compiler_Headers / Include / graphics / clip.h next >
C/C++ Source or Header  |  1992-07-30  |  3KB  |  91 lines

  1. #ifndef    GRAPHICS_CLIP_H
  2. #define    GRAPHICS_CLIP_H
  3. /*
  4. **    $Filename: graphics/clip.h $
  5. **    $Release: 2.04 Includes, V37.4 $
  6. **    $Revision: 37.2 $
  7. **    $Date: 91/10/24 $
  8. **
  9. **
  10. **
  11. **    (C) Copyright 1985-1991 Commodore-Amiga, Inc.
  12. **        All Rights Reserved
  13. */
  14.  
  15. #ifndef EXEC_TYPES_H
  16. #include <exec/types.h>
  17. #endif
  18.  
  19. #ifndef GRAPHICS_GFX_H
  20. #include <graphics/gfx.h>
  21. #endif
  22. #ifndef EXEC_SEMAPHORES_H
  23. #include <exec/semaphores.h>
  24. #endif
  25. #ifndef UTILITY_HOOKS_H
  26. #include <utility/hooks.h>
  27. #endif
  28.  
  29. /* structures used by and constructed by windowlib.a */
  30. /* understood by rom software */
  31.  
  32. #define NEWLOCKS
  33.  
  34. struct Layer
  35. {
  36.     struct  Layer *front,*back;
  37.     struct  ClipRect    *ClipRect;  /* read by roms to find first cliprect */
  38.     struct  RastPort    *rp;
  39.     struct  Rectangle    bounds;
  40.     UBYTE   reserved[4];
  41.     UWORD   priority;            /* system use only */
  42.     UWORD   Flags;            /* obscured ?, Virtual BitMap? */
  43.     struct  BitMap *SuperBitMap;
  44.     struct  ClipRect *SuperClipRect; /* super bitmap cliprects if VBitMap != 0*/
  45.                   /* else damage cliprect list for refresh */
  46.     APTR    Window;          /* reserved for user interface use */
  47.     WORD   Scroll_X,Scroll_Y;
  48.     struct  ClipRect *cr,*cr2,*crnew;    /* used by dedice */
  49.     struct  ClipRect *SuperSaveClipRects; /* preallocated cr's */
  50.     struct  ClipRect *_cliprects;    /* system use during refresh */
  51.     struct  Layer_Info    *LayerInfo;    /* points to head of the list */
  52.     struct  SignalSemaphore Lock;
  53.     struct  Hook *BackFill;
  54.     ULONG   reserved1;
  55.     struct  Region *ClipRegion;
  56.     struct  Region *saveClipRects;    /* used to back out when in trouble*/
  57.     WORD    Width,Height;        /* system use */
  58.     UBYTE   reserved2[18];
  59.     /* this must stay here */
  60.     struct  Region  *DamageList;    /* list of rectangles to refresh
  61.                        through */
  62. };
  63.  
  64. struct ClipRect
  65. {
  66.     struct  ClipRect *Next;        /* roms used to find next ClipRect */
  67.     struct  ClipRect *prev;        /* Temp use in layers (private) */
  68.     struct  Layer   *lobs;        /* Private use for layers */
  69.     struct  BitMap  *BitMap;        /* Bitmap for layers private use */
  70.     struct  Rectangle    bounds;     /* bounds of cliprect */
  71.     void    *_p1;            /* Layers private use!!! */
  72.     void    *_p2;            /* Layers private use!!! */
  73.     LONG    reserved;            /* system use (Layers private) */
  74. #ifdef NEWCLIPRECTS_1_1
  75.     LONG    Flags;            /* Layers private field for cliprects */
  76.                     /* that layers allocates... */
  77. #endif                    /* MUST be multiple of 8 bytes to buffer */
  78. };
  79.  
  80. /* internal cliprect flags */
  81. #define CR_NEEDS_NO_CONCEALED_RASTERS  1
  82. #define CR_NEEDS_NO_LAYERBLIT_DAMAGE   2
  83.  
  84. /* defines for code values for getcode */
  85. #define ISLESSX 1
  86. #define ISLESSY 2
  87. #define ISGRTRX 4
  88. #define ISGRTRY 8
  89.  
  90. #endif    /* GRAPHICS_CLIP_H */
  91.